package com.example.review;

import androidx.annotation.Nullable;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.example.review.base.BaseActivity;
import com.example.review.controller.ActivityController;

public class chapterTwoActivity extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //加载activity_chapter_two这个布局文件
        setContentView(R.layout.activity_chapter_two);

        Button button1=findViewById(R.id.button_1);
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //三个参数，分别是上下文、弹出的内容、时间长短一般选Toast.LENGTH_SHORT

                Toast.makeText(chapterTwoActivity.this, "toast", Toast.LENGTH_SHORT).show();
                Log.d("diy", "onClick: 点击了button1");
            }
        });

        Button button2=findViewById(R.id.button_2);
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.d("diy", "onClick: 点击了button2");
                //销毁活动，效果等同于Back键
                finish();
            }
        });
        Button button3=findViewById(R.id.button_3);
        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.d("diy", "onClick: 点击了button3");
                //两个参数 启动活动的上下文，目标活动
                Intent intent = new Intent(chapterTwoActivity.this,chapterTwo2Activity.class);
                startActivity(intent);
            }
        });

        Button button4 =findViewById(R.id.button_4);
        button4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent =new Intent("yinshi");
                intent.addCategory("lqm");
                startActivity(intent);
            }
        });

        Button button5 =findViewById(R.id.button_5);
        button5.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //的action 是Intent.ACTION_VIEW ，这是一个Android系统内置的 动作
                Intent intent =new Intent(Intent.ACTION_VIEW);
                //通过Uri.parse() 方法，将一个 网址字符串解析成一个Uri 对象，
                // 再调用Intent的setData() 方法将这个Uri 对象传递进去
                intent.setData(Uri.parse("http://www.baidu.com"));
                startActivity(intent);
            }
        });

        Button button6 =findViewById(R.id.button_6);
        button6.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //的action 是Intent.ACTION_DIAL ，这是一个Android系统内置的 动作
                Intent intent =new Intent(Intent.ACTION_DIAL);
                //通过Uri.parse() 方法，将一个 网址字符串解析成一个Uri 对象，
                // 再调用Intent的setData() 方法将这个Uri 对象传递进去
                intent.setData(Uri.parse("tel:10086"));
                startActivity(intent);
            }
        });
        Button button7 =findViewById(R.id.button_7);
        button7.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent =new Intent(chapterTwoActivity.this,chapterTwo2Activity.class);
                //putExtra方法有多个重载，可以传递多种数据
                intent.putExtra("name","李四");
                intent.putExtra("age",18);
                startActivity(intent);
            }
        });

        Button buttonE =findViewById(R.id.buttoneeee);
        buttonE.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //直接调用活动控制器的fishall方法
                ActivityController.finishAll();
                //杀掉当前进程
                android.os.Process.killProcess(android.os.Process.myPid());
            }
        });

        /**
         * 测试返回数据
         */
        Button button8 =findViewById(R.id.button_8);
        button8.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent =new Intent(chapterTwoActivity.this,chapterTwo2Activity.class);
                //putExtra方法有多个重载，可以传递多种数据
                intent.putExtra("name","李四");
                intent.putExtra("age",18888);
                //startActivityForResult() 方法来启动SecondActivity，请求码只要是一 个唯一值就可以了，这里传入了1
                startActivityForResult(intent,1);
            }
        });
        Button buttonbb=findViewById(R.id.buttonBest);
        buttonbb.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                chapterTwo2Activity.actionStart(chapterTwoActivity.this,"张三","李四");
            }
        });
    }

    /**
     * 重写该方法，用于获取chapterTwo2Activity返回的数据
     */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode){
            case 1:
                if (resultCode==RESULT_OK){
                    String returnData =data.getStringExtra("return");
                    Toast.makeText(chapterTwoActivity.this,returnData,Toast.LENGTH_SHORT).show();
                }
        }
    }

    /**
     * 重写菜单创建时方法
     * @param menu
     * @return
     */
    public boolean onCreateOptionsMenu(Menu menu) {

        MenuInflater menuInflater = getMenuInflater();
        //，第一个参数用于指定我们通过哪一个资源文件来创建菜单，这里当然传入R.menu.main 。
        // 第二个参数用于指定我们的菜单 项将添加到哪一个Menu对象当中，
        // 这里直接使用onCreateOptionsMenu() 方法中传入的 menu 参数。
        menuInflater.inflate(R.menu.main,menu);
        //返回true ，表示允许创建的菜单显示出来，如果返回了false ， 创建的菜单将无法显示
        return true;
    }


    /**
     * 为菜单项创建点击事件
     * @param item
     * @return
     */
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.add:
                Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show();
                break;
            case R.id.remove:
                Toast.makeText(this, "You clicked Remove", Toast.LENGTH_SHORT).show();
                break;
            default:
        }
        return true;
    }
}